﻿package com.zouloux.graphics
{
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	
	/**
	 * ...
	 * @author ZoulouX
	 */
	public class BitmapHistogram extends Bitmap
	{
		// La largeur du bitmapData
		protected var _width			:uint;
		
		// La hauteur du bitmapData
		protected var _height			:uint;
		
		// La couleur de fond du bitmapData
		protected var _color			:uint;
		
		
		// Le constructeur
		public function BitmapHistogram (pWidth:uint, pHeight:uint, pColor:uint = 0x111111)
		{
			// Enregistrer les valeur
			_width = pWidth;
			_height = pHeight;
			_color = pColor;
			
			// Créer le bitmapData
			bitmapData = new BitmapData(pWidth, pHeight, false, pColor);
		}
		
		// Ajouter un point
		public function add (pValue:uint = 0, pColor:uint = 0xFFFFFF):void
		{
			// Dessiner le pixel à l'écran
			bitmapData.setPixel(bitmapData.width - 2, bitmapData.height - 1 - pValue, pColor);
		}
		
		// Ajouter un point en 2D
		public function add2D (pX:uint, pY:uint, pColor:uint):void
		{
			bitmapData.setPixel(pX, bitmapData.height - 1 - pY, pColor);
		}
		
		// Passer à l'image suivante
		public function next ():void
		{
			// Scroller
			bitmapData.scroll(-1, 0);
		}
		
		// Effacer l'image
		public function clear ():void
		{
			// Créer un nouveau bitmapData
			bitmapData = new BitmapData(_width, _height, false, _color);
		}
	}
}